Simultaneous execution of processes has become increasingly common. This has allowed for more efficient evaluation of multiple query language expressions, such as XPath expressions. Previously, such expressions had to be executed serially, with the thread executing the expressions making one pass through of a document for each expression. Thus, evaluation of a large collection of expressions could be time consuming. Simultaneous execution of the expressions, on the other hand, requires only a single traversal of a document for all of the expressions, allowing for evaluation of such expressions with greater efficiency.
The collective execution results of such simultaneously executed query language expressions are often stored in a stack or some other similar data structure, with portions of execution results of the multiple expressions being interleaved together. For example, if the results of a first expression are 1, 2, 3 and a second are A, B, C, they may be stored as 1, A, B, 2, 3, C. To retrieve results of any one expression, then, often requires substantial post-processing and review of the entire stack. Such post-processing is unnecessarily time consuming and reduces the advantage of simultaneous execution of multiple expressions.